Java 2019 年生态圈报告
数据来源自国外的一个调查,在过去的几周,这份调查一共采访了6707 名开发人员。数据来源:https://www.baeldung.com/java-in-2019。
1.JDK 版本使用情况
即使在今天 Java 13 都已经发布了,Java 8 仍然是使用最广泛的 JDK 版本。不过, Java 8 仍然从去年的 84.7%下降到今年的 79.8%。我觉得这很大程度上因为 JDK 8 是一个较为里程碑的版本,JDK 8 提供了 Lambda 表达式、函数式接口、Stream 流等等非常方便开发的新特性。为什么 Java 8 还是采用最多的 JDK 版本呢?我觉得还有一点非常重要的原因是:很多人连 Java 8 的新特性都没玩熟,连最基本的 Lambda 表达式和 Stream 流都玩不转,显然你引入更高版本的 JDK ,里面很多新特性大部分也不一定会用,而且不一定能用到。关于 Java 8 新特性,可以查阅这篇文章:Java 8 新特性最佳指南。
2.Spring Framework 的使用
与 Java 相对,这是一个完全不同的故事。去年 Spring4 超过 50%,现在已经达到 30%,而 Spring5 从今天的 24%上升到今天的 58.4%。我觉得这大概率是因为 Spring Boot 最新的版本内部就是集成的 Spring 5,并且 Spring 5 更有利于开发者进行开发。
Java EE 的使用占比也很有趣,从去年的 9.5%上升到现在的 14%。
3.Spring Boot 的使用
对于 Spring Boot,可以看出还有 Spring Boot 已经成为最主流的 Java Web 框架,这点我们在平时工作和学习中也是可以清楚看到的。但是,仍然有接近 25% 的开发者并没有选择使用更优秀的 Spring Boot,难道是为了维护老项目或者是不想拥抱更加优秀的技术?
Spring Boot 2.0+从去年的 30%上升到现在的 60.5%。Spring Boot 在我们平时开发中使用的太广泛了,一般情况下进行新项目的开发都会优先选择 Spring Boot 并且是它的最新版本。为此,我自己也开源了一份 Spring Boot 学习指南:https://github.com/Snailclimb/springboot-guide[1] (目前已经支持在线阅读!)
4.构建工具的使用
构建工具的数据貌似很稳定,和去年一样,Maven 还是开发者使用最广泛的构建工具。
这点其实还是令我比较诧异的。虽然,我知道大部分国内用户和公司都是使用 Maven 的,这点你可以通过在 Github 上搜索 Java 项目有比较清楚的认识。但是,我以为国外会优先使用 Gradle ,毕竟 Gradle 相比于 Maven 在很多方面做的还是要好点。而且,我所在的外企公司在前几年就开始大规模采用 Gradle 开发 Java 项目了,不说其他的。我个人觉得 Gradle 用起来更舒服一点,也推荐各位可以尝试一下。
5.IDE 的采用
IntelliJ 毋庸置疑是使用最广泛的 IDE。但是, 为啥 Eclipse 今年都还有 32.8% 的占比,虽然,相比于去年的 38%降低了不少。
6.web 服务器的采用
Tomcat 仍然是开发者中使用最广泛的 web 服务器,市场占有率高达 73 %。Spring Boot 默认使用的 web 服务器就是 Tomcat 了,我想这也为它的市场占有率的增加加了把🔥。
Spring Boot 支持以下嵌入式 servlet 容器:
Name | Servlet Version |
---|---|
Tomcat 9.0 | 4.0 |
Jetty 9.4 | 3.1 |
Undertow 2.0 | 4.0 |
您还可以将 Spring 引导应用程序部署到任何 Servlet 3.1+兼容的 Web 容器中。
7.其他基于 JVM 的语言
虽然 Kotlin 被广泛采用和接受,但是仍然有 62.6% 的开发人员仅使用 Java。Kotlin 13%增长到了今天的 16.5%。
Groovy 从今天的 19.3%下降到了 17.4%,现在大多数注意力都转移到了 Kotlin 身上。Scala 也下跌了约 1.1%,目前跌至 8.6%。
因此,趋势很明显– Kotlin 正在逐渐淘汰其他 JVM 语言。
8.数据库的使用
数据库领域感觉 MySQL 、PostgreSQL、OracleDB 这三者所占的比例还是比较大的,MySQL 依然是开发者中使用最广泛的。但是,PostgreSQL 大有超过之势头,PostgreSQL 自去年以来增长了 5%。非关系数据库使用最广泛的还是 MongoDB 然后是 Redis,平时开发中,但凡并发量会稍大一点,都会优先选择使用 Redis 作为缓存层,避免过多请求直接访问数据库。
9.总结
我个人感觉上面的数据统计情况大部分都是意料之中,让我感到意外的是构建工具的使用以及使用 Kotlin 的开发者的占比。
总而言之,本文对 Java 社区进行了非常酷的介绍。
推荐阅读
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
欢迎关注